package com.houger.ddd.seckill.facade.dto;

import com.alibaba.fastjson.JSONObject;
import com.houger.ddd.common.base.BaseActivityDto;
import com.houger.ddd.common.base.BaseExtDataDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serial;
import java.time.LocalDateTime;

/**
 * 活动实例表
 *
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class ActivityInstanceDto extends BaseActivityDto {

    @Serial
    private static final long serialVersionUID = 1L;

   @Schema(description ="活动模板ID")
    private Long templateId;

   @Schema(description ="活动模板代码")
    private String templateCode;

   @Schema(description ="活动实例代码")
    private String instanceCode;

   @Schema(description ="实例状态 0-无 1-开启中 2-奖励发放中 3-执行完毕 4-关闭")
    private Integer instanceStatus;

   @Schema(description ="应用端；0:未知;1:小程序;2：APP;3:h5;4:抖音小程序 PlatformEnum")
    private Integer platform;

   @Schema(description ="实例发起人")
    private String initiatorId;

   @Schema(description ="实例发起人手机号")
    private String initiatorPhone;

   @Schema(description ="实例发起人头像")
    private String initiatorIcon;

   @Schema(description ="实例发起人昵称")
    private String initiatorNickname;

   @Schema(description ="发起人绑定奖励ID")
    private Long initiatorRewardItemId;

   @Schema(description ="开始时间")
    private LocalDateTime startTime;

   @Schema(description ="结束时间")
    private LocalDateTime endTime;

   @Schema(description ="完成时间")
    private  LocalDateTime finishTime;

   @Schema(description ="最大受邀人数限制")
    private Integer playerMaxLimit;

   @Schema(description ="最大受邀获得奖励人数限制")
    private Integer playerRewardLimit;

   @Schema(description ="当前受邀人数")
    private Integer totalPlayerCount;

   @Schema(description ="当前受邀获得奖励的人数")
    private Integer totalRewardPlayerCount;

   @Schema(description ="扩展参数")
    private JSONObject extDataJson;

   @Schema(description ="扩展参数对象")
    private BaseExtDataDto extDataObj;

}
